//import com.alibaba.fastjson.JSON;
//import com.opentech.cloud.server.component.api.sdk.ApiClient;
//import com.opentech.cloud.server.component.api.sdk.ApiClientFactory;
//import com.opentech.cloud.server.component.api.sdk.ApiRequestBuilder;
//import com.opentech.cloud.server.component.api.sdk.ApiResponse;
//import com.qian.api.ddj.util.SignUtils;
//import com.qian.api.ddj.util.UrlUtils;
//import com.yaowk.api.utils.HttpUtils;
//import org.apache.commons.codec.digest.DigestUtils;
//import org.junit.Ignore;
//import org.junit.Test;
//
//import java.security.PrivateKey;
//import java.security.cert.X509Certificate;
//import java.util.*;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//
//public class Pay {
//    private ApiClient apiClient;
//    private final String id = "1751";
//    private final String key = "51f3040b172942988657ee37a77bf2df";
//    public X509Certificate serverPublicKey;
//    public String certNo = "2017011822055618000";
//    /**
//     *
//     */
//    public PrivateKey clientPrivateKey;
//
//    /**
//     *
//     */
//    public X509Certificate clientPublicKey;
//
//    /**
//     * 证书密码
//     */
//    public char[] password;
//
//    /**
//     * MD5签名密钥
//     */
//    public String md5Key;
//
//
//    @Test
//    @Ignore
//    public void uOrder() {
//        Map<String, String> map = new LinkedHashMap<>();
//        map.put("parter", id);
//        map.put("type", "993");
//        map.put("value", "0.02");
//        map.put("orderid", String.valueOf(new Date().getTime()));
//        map.put("callbackurl", "http://uupp777.vicp.cc:28771/notify/yiaiNotify");
//        System.out.println("map数据："+map);
//        String sign = DigestUtils.md5Hex(SignUtils.params(map) + key);
//        System.out.println("sign数据："+sign);
//        map.put("agent", "");
//        map.put("sign", sign);
//
//        String receive = HttpUtils.post("http://pay.55555pay.com/chargebank.aspx ", HttpUtils.formatData(map));
//        System.out.println(receive);
//        String url="<img src=\".*?\" id=\"QRcode\" class=\"qrcode\" alt=\"二维码\" />";//提取html代码中的img中代码
//        Pattern pt = Pattern.compile(url);
//        Matcher mt = pt.matcher(receive);
//        String url2 = "";
//        while (mt.find()){ //得到img代码
//            url2 = mt.group();
//            System.out.println("得到的数据："+mt.group());
//        }
//        String role = "https.*?\"";//提取真正的支付地址
//        Pattern pt2 = Pattern.compile(role);
//        Matcher mt2 = pt2.matcher(url2);
//        String result2 = "";
//        while (mt2.find()){
//            String[] result = mt2.group().split("\"");
//            for (int a = 0;a<result.length;a++){
//                result2 = result2+result[a];
//            }
//
//        }
//        System.out.println(UrlUtils.getURLDecoderString("真实URL："+result2));//支付地址URL解码
//    }
//
//    @Test
//    @Ignore
//    public void xjwf(){
//        Map<String,String> map = new HashMap<String,String>();
//        map.put("userid", id);
//        map.put("bankCode", "3001");
//        map.put("defaultbank", "");
//        map.put("returnUrl", "http://baidu.com");
//        map.put("amount", "10");
//        /**参与验签的字段*/
//        String sign =SignUtils.getKeyedDigest(SignUtils.getSignParam(map),key);
//        map.put("orderCode", "xj_gateway");
//        map.put("sign", sign);
//        map.put("pay_number", String.valueOf(new Date().getTime()));
//        map.put("notify_url", "http://baidu.com");
//        String sr = HttpUtils.post("http://extman.kefupay.cn/pay/pay_mobile.action", HttpUtils.formatData(map));
//        Map<String, Object> result = JSON.parseObject(sr, Map.class);
//        System.out.println(sr);
//    }
//    @Test
//    @Ignore
//    public void xjsmwf(){
//
//        Map<String,String> map = new HashMap<String,String>();
//        map.put("userid", id);
//        map.put("payType", "WXZF");
//        map.put("subject", "全宇支付");
//        map.put("amount", "5.5");
//        map.put("returnUrl", "http://extman.kefupay.cn/newWechats/test111.action");
//        /**参与验签的字段*/
//       String sign = SignUtils.getKeyedDigest(SignUtils.getSignParam(map), key);
//        map.put("orderCode", "xj_codePay");
//        map.put("sign", sign);
//        map.put("pay_number", "2017101716252846152999");
//        map.put("notify_url", "http://extman.kefupay.cn/newWechats/test111.action");
//        String sr = HttpUtils.post("http://extman.kefupay.cn/pay/pay_mobile.action", SignUtils.getSignParam(map));
//        System.out.println(sr);
//    }
//    @Test
//    public void xjkjwf(){
//        Map<String,String> map = new HashMap<String,String>();
//        map.put("userid", id);
//        map.put("amount", "10");
//        map.put("returnUrl", "http://extman.kefupay.cn/newWechats/test111.action");
//        /**参与验签的字段*/
//        String sign = SignUtils.getSignParam(map);
//        System.out.println("计算签名的报文为："+sign);
//        sign = SignUtils.getKeyedDigest(sign, key);
//        map.put("orderCode", "xj_quickPay");
//        map.put("sign", sign);
//        map.put("pay_number", "2017301910581459975");
//        map.put("notify_url", "http://extman.kefupay.cn/newWechats/test111.action");
//        String baowen = SignUtils.getSignParam(map);
//        System.out.println("上送的报文为："+baowen);
//        String sr = HttpUtils.post("http://extman.kefupay.cn/pay/pay_mobile.action", baowen);
//        System.out.println(sr);
//
//    }
//    @Test
//    public void wxpcsm(){
//        Map<String, String> map = new LinkedHashMap<>();
//        map.put("parter", id);
//        map.put("type", "1004");
//        map.put("value", "10.00");
//        map.put("orderid", String.valueOf(new Date().getTime()));
//        map.put("callbackurl", "http://uupp777.vicp.cc:28771/notify/yiaiNotify");
//        String sign = DigestUtils.md5Hex(SignUtils.params(map) + key);
//        map.put("sign", sign);
//        String receive = HttpUtils.post("http://pay.55555pay.com/chargebank.aspx", HttpUtils.formatData(map));
//        System.out.println(receive);
//        String url = "<img src=\".*?\" id=\"QRcode\" class=\"qrcode\" alt=\"二维码\" />";//提取html代码中的img中代码
//        Pattern pt = Pattern.compile(url);
//        Matcher mt = pt.matcher(receive);
//        String url2 = "";
//        while (mt.find()){ //得到img代码
//            url2 = mt.group();
//            System.out.println("得到的数据："+mt.group());
//        }
//        String role = "weixin://.*?\"";//提取真正的支付地址
//        Pattern pt2 = Pattern.compile(role);
//        Matcher mt2 = pt2.matcher(url2);
//        String result2 = "";
//        while (mt2.find()){
//            String[] result = mt2.group().split("\"");
//            for (int a = 0;a<result.length;a++){
//                result2 = result2+result[a];
//            }
//
//        }
//        System.out.println(UrlUtils.getURLDecoderString("真实URL："+result2));//支付地址URL解码
//
//    }
//
//    @Test
//    public void datedb(){
//        Date a = new Date();
//        Map<String, String> map = new LinkedHashMap<>();
//        map.put("parter", id);
//        map.put("type", "992");
//        map.put("value", "0.02");
//        map.put("orderid", String.valueOf(new Date().getTime()));
//        map.put("callbackurl", "http://uupp777.vicp.cc:28771/notify/yiaiNotify");
//        System.out.println("map数据："+map);
//        String sign = DigestUtils.md5Hex(SignUtils.params(map) + key);
//        System.out.println("sign数据："+sign);
//        map.put("agent", "");
//        map.put("sign", sign);
//
//        String receive = HttpUtils.post("http://pay.55555pay.com/chargebank.aspx ", HttpUtils.formatData(map));
//        Date b = new Date();
//        System.out.println(a.before(b));
//    }
//    @Test
//    public void dzqb(){
//        Map<String,String > map = new TreeMap<>();
//        map.put("service","wechantPayOrder");
//        map.put("inputCharset","UTF-8");
//        map.put("userId","");
//        map.put("reqChannel","WEB");
//        map.put("tradeAmt","100");
//        map.put("merchOrderNo",String.valueOf(new Date().getTime()));
//        map.put("mergeType","APP");
//        String sign = DigestUtils.md5Hex(SignUtils.params(map));
//        map.put("signType","MD5");
//        map.put("sign",sign);
//
//    }
//    @Test
//    public void zfbandwx(){
//        Map<String,String> map = new TreeMap<>();
//        map.put("serviceName","wcbarpay");
//        map.put("version","V1");
//        map.put("merchantId","");
//        map.put("charset","UTF-8");
//        map.put("payType","15");
//        String sign =DigestUtils.md5Hex(SignUtils.params(map));
//        map.put("signType","MD5");
//        map.put("sign",sign);
//    }
//    @Test
//    public void zfpt(){
//
//    }
//    @Test
//    public void tetet() {
//        this.apiClient = ApiClientFactory.newClient("https://gw.ak47pay.com/native/", "FUAR24001ZZAO", "qzw");
//        // 生成外部唯一的交易号
//        String outTradeNo = System.currentTimeMillis() + "";
//
//        // 创建交易
//
//        // 构建API请求, API名称, API版本号
//        ApiRequestBuilder builder = ApiRequestBuilder.newInstance("com.opentech.cloud.easypay.trade.create", "0.0.1");
//        // 添加参数 商户号 必须
//        builder.addParameter("merchantNo", "FUAR24001ZZAO");
//
//        //builder.addParameter("merchantNo", "AHCG40002BMHF");
//
//        // 添加参数 外部订单号 必须
//        builder.addParameter("outTradeNo", outTradeNo);
//        // 添加参数 货币类型 非必须, CNY 会USD
//        builder.addParameter("currency", "CNY");
//        // 添加参数 交易金额 必须
//        builder.addParameter("amount", 160000L);
//        builder.addParameter("settlePeriod", "T0");
//        builder.addParameter("payType", "WECHAT_QRCODE_PAY");
//        builder.addParameter("customerChannelName", "TLINX");
//        builder.addParameter("content", "2016新款15寸 touchbar mac笔记本");
//        // 添加参数 外部上下文 非必须
//        builder.addParameter("outContext", "my_context");
//        // 添加参数 交易状态回调地址 必须
//        builder.addParameter("callbackURL", "http://gw.dev.xzlpay.com/merchant/callback4trade.do");
//        builder.addParameter("returnURL", "http://gw.dev.xzlpay.com/merchant/return.do");
//        ApiResponse response = null;
//        response = this.apiClient.invoke(builder.build());
//        // 判断是否成功
//        if(response.isSucceed()) {
//            // 调用成功 response.getData(Map.class) 返回结果
//            System.out.println(JSON.toJSONString(response.getData(Map.class), true));
//        } else {
//            // 发生错误
//            System.out.println("error: " + response.getErrorCode() + "/" + response.getMsg());
//        }
//    }
//}
